<?php 
/**
*file log.class.php
*
*记录日志信息
*日志文件大于1M 就备份 
*判断日志文件大于1M就备份 否则写入 
*@const LOGFILE 建一个常量做日志文件名称
*
*/
defined('ACC') ||exit ('ACC Denied');

class Log{
	const LOGFILE = 'curr.log';

/**
*写入日志
*@param string $cont
*判断大小调用isBak
*@param file $log
*@param resource $df
*/
public static function write($cont){
    $cont .= "\r\n";

    $log = self::isBak();

    $df = fopen($log, 'ab');
    fwrite($df, $cont);
    fclose($df);
}

/**
*备份日志文件 把旧的文件改名字存储起来
*@param file $log
*return 更名后的文件 格式 date
*/
public static function bak(){
    $log = ROOT.'log/'.self::LOGFILE;
    $bak = ROOT.'log/'.date('Ymd').mt_rand(100000,999999).'.bak';
    return rename($log, $bak);
}

/**
*判断日志文件大小 大于1M备份 否则写入
*@param float $size
*@param file $log
*判断文件是否存在 
*不存在创建   在return $log
*
*清除缓存
*
*$size小于1m的情况 直接写入
*return $log
*
*$size大于1m的情况下 执行备份
*备份未成功 return $log
*文件不存在 创建文件 在return $log
*
*/
public static function isBak(){
    $log = ROOT.'log/'.self::LOGFILE;
    if (!file_exists($log)) {
    	touch($log);
    	return $log;
    }

    clearstatcache(true,$log);

    $size = filesize($log);
    if ($size <= 1024*1024) {
    	return $log;
    }

    if (!self::bak()) {
    	return $log;
    }else{
    	touch($log);
    	return $log;
    }
}




}



?>